PO

#4 - aula de scripting lua - estrutura de controle - IF

Por Poccnn, 10 de abr. de 2017 em Aulas

lua
scripting
aula
21
7.8k
PoccnnP
24 de abril de 2017 às 16:44

@Nildson

 

O que está ocorrendo é  um problema com sua declaração condicional.

Citar

if not getPlayerLevel(cid) == 1 then
        doSendMagicEffect(getThingPos(cid), 39)
        doPlayerSendTextMessage(cid, 25,"Você tem nível 0, upe até nível 1 e retorne aqui")

 

Substitua a função getplayerlevel por qualquer numero; diremos, Por 1: 

if not 1 == 1 then 

 

Sabemos que 1 é igual a 1 só que a palavra not inverte essa verdade para mentira fazendo com que o bloco do if não seja executado. Agora coloque qualquer numero diferente de 1 e verás que ele vai executar o bloco do if; veja:

 

if not 100 == 1 then

 

100 não é igual a 1, isso é falso, mas a palavra not inverte o valor dizendo que é verdadeiro e portanto executando o bloco do if. Isso serve para qualquer número. 

 

A mensagem que tu escreveu não condiz com a condição posta no if, pois o player pode ter qualquer valor diferente de um que esse bloco será executado.

Espero que tenha entendido.

26 de abril de 2017 às 11:26

Show de bola!

 

vejamos se aprendi..

waipon = assassin starscoins = dinheiroif waipon < 100 and coins  == 35000 then buyitems waipon 100elseif waipon < 100 thenbuyitems waipon 100elseif waipon >= 100 thengotolabel huntelse xlogreturn trueend

aqui utilizei alguns codigos do elfbot mas da pra entender como exemplo rsrs

Editado Abril 26 por Everson Miranda

PoccnnP
26 de abril de 2017 às 13:29
1 hora atrás, Everson Miranda disse:

Show de bola!

 

vejamos se aprendi..

waipon = assassin starscoins = dinheiroif waipon < 100 and coins  == 35000 then buyitems waipon 100elseif waipon < 100 thenbuyitems waipon 100elseif waipon >= 100 thengotolabel huntelse xlogreturn trueend

aqui utilizei alguns codigos do elfbot mas da pra entender como exemplo rsrs

 

Já leu as outras aulas?

26 de abril de 2017 às 15:16
1 hora atrás, Poccnn disse:

 

Já leu as outras aulas?

Ja lí sim @Poccnn muito interessante... estou tentando aprender um pouco de lua, por isso resolvi montar 1 otserver, nao para fins lucrativos mas para estudo e gostei da sua iniciativa ira me ajudar bastante 

1 mês depois...
Saymon14S
04 de maio de 2017 às 20:31
local storage = 55000if getplayerstorage(cid, storage) == 1 thendoPlayerAddItem (cid, 2545, 1)doPlayerSendTextMessage(cid,22,"Você ganhou uma espada do dragao")elsedoPlayerSendTextMessage(cid,22,"voce nao tem permissao") return trueend

 

11 meses depois...
ZikaLodsZ
20 de abril de 2018 às 23:42
 

Não sei como é o restante desse script, mas esse return true e esse end no final não fazem parte de nenhum bloco e o end não está fehando nenhum escopo, portanto geraria um erro de execução. 

 

 

 

Totalmente errado.

Tu fechou o if e após ter fechado quis abrir um elseif. 

O elseif está intimamente ligado ao if, portanto não pode ser declarado sozinho.

Outra coisa: a mensagem que tu pos nos dois blocos criados tanto por if quanto por elseif não condizem com a declaração da condição poata nos mesmo.

Sugiro que reveja a condição declarada ou a mensagem enviada e, caso seja preciso, re-leia essa aula:

 

                     if getPlayerSkill(cid) > 20 then
                     print("Sua skill é maior que 20")
                     elseif getPlayerSkill(cid) < 20 then
                     print("Sua Skill é menor que 20")
                     return true
                     end